/**
 * axios封装
 * 使用方法参考
 *ref:https://segmentfault.com/a/1190000022645125
 *出现cors error
 * 解决方法1：https://segmentfault.com/a/1190000037571525
 * 解决方法2:配置代理
 *  https://segmentfault.com/a/1190000017048597
 * 不使用封装aioxs时没有跨域问题，请求也是成功的。
 *
 * 尝试使用封装的aioxs请求后，出现cors问题，暴露配置文件，配置proxy，即成功请求。
 * 通过设置setupProxy.js完成配置，这方法可以不暴露配置文件。
 */

import axios from "axios";
import qs from "qs";

axios.defaults.timeout = 50000;
// axios.defaults.baseURL = "/api1";
// axios.defaults.baseURL = "/api2";

axios.defaults.headers.post["Content-Type"] =
  "application/x-www-form-urlencoded; charset=UTF-8";
axios.defaults.headers.post["Access-Control-Allow-Origin"] = "*";
axios.defaults.withCredentials = true;

let http = {
  post: "",
  get: "",
};

http.post = function (api, data) {
  let params = qs.stringify(data);
  return new Promise((resolve, reject) => {
    axios
      .post(api, params)
      .then((res) => {
        resolve(res);
      })
      .catch((err) => {
        reject(err);
      });
  });
};

http.get = function (api, data) {
  let params = qs.stringify(data);
  return new Promise((resolve, reject) => {
    axios
      .get(api, params)
      .then((res) => {
        resolve(res);
      })
      .catch((err) => {
        reject(err);
      });
  });
};

export default http;
